---
title: OpenWeather
---

**OpenWeatherTools** enable an Agent to access weather data from the OpenWeatherMap API.

## Prerequisites

The following example requires the `requests` library and an API key which can be obtained from [OpenWeatherMap](https://openweathermap.org/api). Once you sign up the mentioned api key will be activated in a few hours so please be patient.

```shell
export OPENWEATHER_API_KEY=***
```

## Example

The following agent will use OpenWeatherMap to get current weather information for Tokyo.

```python cookbook/tools/openweather_tools.py
from agno.agent import Agent
from agno.tools.openweather import OpenWeatherTools

# Create an agent with OpenWeatherTools
agent = Agent(
    tools=[
        OpenWeatherTools(
            units="imperial",  # Options: 'standard', 'metric', 'imperial'
        )
    ],
    markdown=True,
)

# Get current weather for a location
agent.print_response("What's the current weather in Tokyo?", markdown=True)
```

## Toolkit Params

| Parameter         | Type   | Default   | Description                                                                |
| ----------------- | ------ | --------- | -------------------------------------------------------------------------- |
| `api_key`         | `str`  | `None`    | OpenWeatherMap API key. If not provided, uses OPENWEATHER_API_KEY env var. |
| `units`           | `str`  | `metric`  | Units of measurement. Options: 'standard', 'metric', 'imperial'.           |
| `enable_current_weather` | `bool` | `True`    | Enable current weather function.                                           |
| `enable_forecast`        | `bool` | `True`    | Enable forecast function.                                                  |
| `enable_air_pollution`   | `bool` | `True`    | Enable air pollution function.                                             |
| `enable_geocoding`       | `bool` | `True`    | Enable geocoding function.                                                 |

## Toolkit Functions

| Function             | Description                                                                                                |
| -------------------- | ---------------------------------------------------------------------------------------------------------- |
| `get_current_weather`| Gets current weather data for a location. Takes a location name (e.g., "London").                          |
| `get_forecast`       | Gets weather forecast for a location. Takes a location name and optional number of days (default 5).       |
| `get_air_pollution`  | Gets current air pollution data for a location. Takes a location name.                                     |
| `geocode_location`   | Converts a location name to geographic coordinates. Takes a location name and optional result limit.       |

## Developer Resources

- View [Tools](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/openweather.py)
- View [Cookbook](https://github.com/agno-agi/agno/tree/main/cookbook/tools/openweather_tools.py)